package cn.qf.array;

public class DefaultValueOfArray {
    public static void main(String[] args) {
        // 创建一个整型数组，动态初始化
        int[] intArr;
        intArr = new int[5];

        for(int i =0, len = intArr.length; i < len; i++){
            System.out.printf("第 %d 个元素的值为：%d \n", i+1, intArr[i]);
        }
        System.out.println();

        // 布尔型数组
        boolean[] boolArr = new boolean[6];

        for(int i =0, len = boolArr.length; i < len; i++){
            System.out.printf("第 %d 个元素的值为：%b \n", i+1, boolArr[i]);
        }

        System.out.println();

        // Task: 静态初始化一个整数数组，并找出该数组中的最小值 和 最大值
        int[] arr = new int[]{1, 23, -6, 7, 85, 101, -2, 0, 82};

        int min = arr[0];
        int max = arr[0];
        for(int i = 1, len = arr.length; i < len; i++){
            int num = arr[i];

            // 找最小值
            min = num < min ? num : min;
//            if(num < min){
//                min = num;
//            }

            // 找最大值
            max = num > max ? num : max;
//            if(num > max){
//                max = num;
//            }
        }
        System.out.println("最小值：" + min + " 最大值：" + max);

        // 用 for-each 优化
        min = arr[0];
        max = arr[0];
        for(int num : arr){
            // 找最小值
            min = num < min ? num : min;

            // 找最大值
            max = num > max ? num : max;
        }
        System.out.println("最小值：" + min + " 最大值：" + max);
        System.out.println();

        // Task: 静态初化一个 byte 类型的数组，用 for-each 语句，计算其中奇数元素的和
        byte[] byteArr = {1, 23, -6, 7, 85, 101, -2, 0, 82};
        int sum = 0;
        for(byte num : byteArr){
            sum += (num % 2 != 0 ? num : 0);
        }
        System.out.println("奇数和为：" + sum);
        System.out.println();

        // 创建一个二维数组
        String[][] strs = new String[3][]; // 动态初始化一个3行的数组
        strs[0] = new String[]{"abc"};
        strs[1] = new String[]{"x1", "x2"};
        strs[2] = new String[]{"y0", "y1", "y2"};

        for(String[] line : strs){ // 遍历行
            for(String str : line){ // 遍历每行中的元素
                System.out.print(str + "\t");
            }
            System.out.println();
        }
    }
}
